考題日期:2016/05/24
題號:10200
星等:2
語言:C++
題目:
題意:
知名數學家Euler發現,在 0 <= n < 40 的情況下,n^2+n+41會產生質數,但超過這範圍後則不一定。請找出在某一個範圍中,這個公式可以產生質數的百分比。
程式:
#include <iostream>
#include <iomanip>
using namespace std;
bool Prime(int num)
{
    for(int i = 2 ; i < num/2 ; i++)
    {
        if(num%i == 0)
            return false;
    }
    return true;
}
int formula(int n)
{
    return n*n+n+41;
}
int main()
{
    int a,b;
    while(cin>>a>>b)
    {
        float c = 0;
        for(int i = a ; i <= b ; i++)
        {
            if(Prime(formula(i)))
                c++;
        }
        cout<<fixed<<setprecision(2)<<float(c/(b-a+1)*100)<<endl;
    }
}
測資: